package com.smart.client.core.rule;

import lombok.extern.slf4j.Slf4j;

/**
 * Created By Li Jiaxi
 * <br/>Date: 2023/4/12 14:36
 * <br/>Description:
 */
@Slf4j
public abstract class DefaultRuleHandler<T> extends AbstractRuleHandler<T> {

    /**
     * MEMS 水位、雨量推送数据的topic字段名，用于与雷视推送数据区分
     */
    public static final String TOPIC_NAME = "topic";

    @Override
    protected void ruleVerify(T t) {
        log.debug("====>>>> DefaultRuleHandler 开始针对数据[{}]校验规则是否满足要求.", t);
        insertRecord(t);
        verify(t);
    }

    /**
     * 插入记录表
     *
     * @param t 处理数据
     */
    public abstract void insertRecord(T t);

    /**
     * 规则校验
     *
     * @param t 处理数据
     */
    protected abstract void verify(T t);

}
